In order to preserve document features that an editor cannot represent, it can be advantageous to apply user edits to the source document as a sequence of changes, rather than writing out the document from the data representations of the editor used. Conventional editors employ the latter method. Following this approach can require that the entire source document load into memory. As well, this approach can require arbitrary portions of the document to load at arbitrary times.
A rich edit window is a design surface that is primarily used with RTF (rich text format) files. A rich editor can also provide a means that a user can programmatically insert text, format text as well as to incorporate other features into a document. One application is to employ rich edit to display word processing (e.g., Word) documents. Word processing documents are frequently in a much richer format than a rich editor can support. However, a user does not want to lose all of the rich formatting available in the word processing document after the document is brought into the rich editor, edited and saved.
As described above, traditional approaches require that the entire document be put in memory whereby the changes can be applied sequentially as generated. These systems unnecessarily consume available memory which can be limited resource in today's handheld devices (e.g., smartphone, personal data assistant (PDA), Pocket PC, . . . ). Moreover, these traditional implementations can possibly require iterative accesses to the same portion of the source document thereby degrading overall document system performance.
What is needed is a system and methodology that arranges temporally sequenced user document modifications into an order consistent with the layout of the document file encoding. This type of system can improve the document save performance and decrease the memory accesses required thus, preserving the valuable memory resource.